# -*- coding: utf-8 -*-
from mod.client.ui.controls.progressBarUIControl import ProgressBarUIControl
from mod.client.ui.controls.sliderUIControl import SliderUIControl
from legendaryPowerClientScript.ui.base.baseComponent import BaseComponent
class SliderComponent(BaseComponent):
    # type: () -> None
    """
    滑块组件，对于原生UI的Slider拖动条控件
    Attributes:
        _typeHint (str): 组件类型提示。
        _component (TextEditBoxUIControl): 文本框控件。
        textCache (str): 滑块值缓存。0~1
    """
    self._typeHint  = ""
    self._component  = TextEditBoxUIControl()
    self.textCache  = ""

    def GetEditText(self, useCache=None):
        """
        获取滑块值。
        Returns:
            float: 滑块值。0~1
        """
        pass

    def SetValue(self, value):
        # type: (float) -> None
        """
        设置值。

        Args:
            value (float): 值。
        """
        pass

    def GetSliderValue(self):
        # type: () -> float
        """
        获取滑块值。
        Returns:
            float: 滑块值。0~1
        """
        return 0.0


    def registerOnChanged(self, callback):
        # type: (callable) -> None
        """
        注册回调函数。在滑块被拖动后会调用回调
        该回调接受两个参数：
            slider (SliderComponent)：此滑块控件。可通过调用 slider.GetSliderValue()来获取新的值（0~1）
            previous (float)： 更改前的值
        Args:
            callback (callable): 回调函数。
        """
        pass

